home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / semaphore.h < prev    next >
C/C++ Source or Header  |  2009-10-07  |  2KB  |  80 lines

  1. /* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
  2.    This file is part of the GNU C Library.
  3.  
  4.    The GNU C Library is free software; you can redistribute it and/or
  5.    modify it under the terms of the GNU Lesser General Public
  6.    License as published by the Free Software Foundation; either
  7.    version 2.1 of the License, or (at your option) any later version.
  8.  
  9.    The GNU C Library is distributed in the hope that it will be useful,
  10.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.    Lesser General Public License for more details.
  13.  
  14.    You should have received a copy of the GNU Lesser General Public
  15.    License along with the GNU C Library; if not, write to the Free
  16.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  17.    02111-1307 USA.  */
  18.  
  19. #ifndef _SEMAPHORE_H
  20. #define _SEMAPHORE_H    1
  21.  
  22. #include <features.h>
  23. #include <sys/types.h>
  24. #ifdef __USE_XOPEN2K
  25. # define __need_timespec
  26. # include <time.h>
  27. #endif
  28.  
  29. /* Get the definition for sem_t.  */
  30. #include <bits/semaphore.h>
  31.  
  32.  
  33. __BEGIN_DECLS
  34.  
  35. /* Initialize semaphore object SEM to VALUE.  If PSHARED then share it
  36.    with other processes.  */
  37. extern int sem_init (sem_t *__sem, int __pshared, unsigned int __value)
  38.      __THROW;
  39. /* Free resources associated with semaphore object SEM.  */
  40. extern int sem_destroy (sem_t *__sem) __THROW;
  41.  
  42. /* Open a named semaphore NAME with open flags OFLAG.  */
  43. extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW;
  44.  
  45. /* Close descriptor for named semaphore SEM.  */
  46. extern int sem_close (sem_t *__sem) __THROW;
  47.  
  48. /* Remove named semaphore NAME.  */
  49. extern int sem_unlink (__const char *__name) __THROW;
  50.  
  51. /* Wait for SEM being posted.
  52.  
  53.    This function is a cancellation point and therefore not marked with
  54.    __THROW.  */
  55. extern int sem_wait (sem_t *__sem);
  56.  
  57. #ifdef __USE_XOPEN2K
  58. /* Similar to `sem_wait' but wait only until ABSTIME.
  59.  
  60.    This function is a cancellation point and therefore not marked with
  61.    __THROW.  */
  62. extern int sem_timedwait (sem_t *__restrict __sem,
  63.               __const struct timespec *__restrict __abstime);
  64. #endif
  65.  
  66. /* Test whether SEM is posted.  */
  67. extern int sem_trywait (sem_t *__sem) __THROW;
  68.  
  69. /* Post SEM.  */
  70. extern int sem_post (sem_t *__sem) __THROW;
  71.  
  72. /* Get current value of SEM and store it in *SVAL.  */
  73. extern int sem_getvalue (sem_t *__restrict __sem, int *__restrict __sval)
  74.      __THROW;
  75.  
  76.  
  77. __END_DECLS
  78.  
  79. #endif    /* semaphore.h */
  80.